With the increasing use of computing devices, the usage and need for digital signal processing (DSP) has increased. Applications for DSP include digital image processing, video compression, digital communications, seismology, biomedicine, audio signal processing, audio compression, speech processing, speech recognition, Radio Detection and Ranging (RADAR), Sound Navigation and Ranging (SONAR), to name a few.
The input signals are received at an electronic device, such as a Programmable Logic Device (PLD), through multi-channels in either a burst mode or in a continuous stream mode. The input signals include a plurality of frames and each frame has a plurality of data samples. The data signals of the input streams are passed through electronic filters, such as finite impulse response (FIR) filters, to remove unwanted content. The data signals are then processed at the device, typically, one frame at a time.
In case of burst mode, the data signals are received at the device as a burst at random or pre-defined time periods and are processed by the device using traditional data processing methodology, such as Fast Fourier Transform (FFT) processing. If the FFT processing is sufficiently faster than the input throughput of burst data, the latency associated with data processing is not a big issue.
If the data is received as a continuous input data stream, the device has to process the data efficiently so as to have little or no latency associated with data processing. The data in a multi-channel input data stream is typically interleaved to protect the transmission against “burst” errors. Generally speaking, data is received through an array of analog-to-digital converters (ADCs). These converters are memory less devices which sample the analog source at a specified frequency. In order to prevent data loss due to burst errors, the data is naturally interleaved. Burst errors, as used in telecommunications, refers to a contiguous sequence of data symbols, received over a transmission channel with usually the first and last data symbols being in error. Presence of these errors often results in overwriting of a lot of sequential data bits leading to incorrect deciphering of data using a decoder. The interleaving, thus, protects the transmission data by minimizing correctable data bits due to burst errors per channel, thereby enabling the decoder to decode the code words of the transmitted data correctly.
Upon receipt of the interleaved data, if the data processing (such as FFT) at the device processes the data of the input stream at the same rate as the input throughput, then there is a potential latency associated with the data processing. Especially in frame-based data processing employing a single buffer memory, a whole frame of data of pre-determined length must be available at the memory buffer before data processing can begin. A frame of data, as used in this application, includes a set of data accumulated in a single time block or frame. This format of accumulating data is commonly used in real-time systems where data is usually accumulated from multiple channels. The size of the frame is adjusted to reduce the latency associated with accumulating the data for the frame. While a current frame's data is being processed, the data for the next frame will have to wait till the processing of the current frame data is completed in order to avoid potential memory overwrites. In order to overcome the latency with a single buffer memory, a double buffer memory module may be implemented. In the double buffer memory module, the memory is divided into two buffers, with a first frame's data being processed from a first buffer while the second buffer is being used for writing the next frame of data. This avoids the latency associated with data processing of subsequent frames of data. However, the memory requirements of the double buffer memory module increases depending on the number of channels or the size of frames, reaching resource limitations of the device.
It is, therefore, beneficial to look into alternate ways of minimizing memory usage without compromising on the quality or speed of data processing. It is in this context embodiments of the invention arise.